home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2001 May / SGI Freeware 2001 May - Disc 1.iso / dist / fw_hylafax.idb / usr / freeware / man / cat4 / hylafax.Z / hylafax
Text File  |  2000-06-09  |  32KB  |  595 lines

  1.  
  2.  
  3.  
  4. HHHHYYYYLLLLAAAAFFFFAAAAXXXX((((4444FFFF))))     UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJaaaannnnuuuuaaaarrrryyyy 11118888,,,, 1111999999996666))))      HHHHYYYYLLLLAAAAFFFFAAAAXXXX((((4444FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      HylaFAX - introduction to _H_y_l_a_F_A_X server operation and file
  10.      formats
  11.  
  12. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  13.      _H_y_l_a_F_A_X is a system for sending and receiving facsimile.  It
  14.      supports queued transmission and asynchronous reception of
  15.      facsimile.  Ancillary programs are invoked by the system for
  16.      flexibility and configurability.  _H_y_l_a_F_A_X includes client
  17.      and server programs to support remote submission of jobs for
  18.      transmission, remote removal of queued jobs, and to remotely
  19.      query the status of jobs queued for transmission.  This
  20.      document describes the organization of the filesystem
  21.      spooling area in which _H_y_l_a_F_A_X server and server-related
  22.      processes operate, and introduces the various files that
  23.      reside in the spooling area.
  24.  
  25. OOOOVVVVEEEERRRRVVVVIIIIEEEEWWWW
  26.      The spooling area is typically located under the directory
  27.      /_u_s_r/_f_r_e_e_w_a_r_e/_v_a_r/_s_p_o_o_l/_f_a_x.  Ancillary command scripts used
  28.      by the server programs _f_a_x_q(1M), _f_a_x_s_e_n_d(1M), _p_a_g_e_s_e_n_d(1M),
  29.      and _f_a_x_g_e_t_t_y(1M) are located in the bbbbiiiinnnn subdirectory.
  30.      Configuration, access control, and accounting information
  31.      are maintained in the eeeettttcccc and ccccoooonnnnffffiiiigggg subdirectories.
  32.      Outgoing jobs are described by files in the sssseeeennnnddddqqqq
  33.      subdirectory, while received facsimile are deposited in the
  34.      rrrreeeeccccvvvvqqqq subdirectory.  The ddddooooccccqqqq and tttteeeemmmmpppp subdirectories are
  35.      also used in the preparation of outbound jobs; the latter
  36.      holds files that may be freely purged while the former holds
  37.      client files that may reside on the server independent of an
  38.      associated job.  The ddddoooonnnneeeeqqqq subdirectory holds jobs that have
  39.      completed but have not yet been purged or archived.  On
  40.      systems with job archival support, completed jobs that have
  41.      been archived are placed in the aaaarrrrcccchhhhiiiivvvveeee subdirectory.  The
  42.      ppppoooollllllllqqqq subdirectory holds documents that are available for
  43.      polled retrieval from the server.  The iiiinnnnffffoooo subdirectory
  44.      contains files that describe the capabilities of facsimile
  45.      machines that _H_y_l_a_F_A_X has called-this information is used in
  46.      preparing documents for transmission.  The ssssttttaaaattttuuuussss
  47.      subdirectory contains files that server processes write
  48.      their current status to.  The lllloooogggg subdirectory contains
  49.      logging information about send and receive sessions.  The
  50.      cccclllliiiieeeennnntttt subdirectory contains FIFO special files used for
  51.      communication with _f_a_x_q.
  52.  
  53.      _H_y_l_a_F_A_X supports multiple modems on a host.  A single
  54.      process acts as central queueing agent for all outbound
  55.      jobs.  Typically each modem also has a server process that
  56.      monitors the modem status and handles inbound phone calls.
  57.      Per-modem server processes communicate with the central
  58.      queueing agent using FIFO special files; see _m_k_n_o_d(2) or
  59.      _m_k_f_i_f_o(2).  Any other synchronization between server
  60.  
  61.  
  62.  
  63. Page 1                                          (printed 3/21/00)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. HHHHYYYYLLLLAAAAFFFFAAAAXXXX((((4444FFFF))))     UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJaaaannnnuuuuaaaarrrryyyy 11118888,,,, 1111999999996666))))      HHHHYYYYLLLLAAAAFFFFAAAAXXXX((((4444FFFF))))
  71.  
  72.  
  73.  
  74.      processes is done using file-level locking.  The _f_a_x_q
  75.      process listens for commands written to the file named FFFFIIIIFFFFOOOO,
  76.      while each _f_a_x_g_e_t_t_y process listens for commands written to
  77.      a per-device file named FFFFIIIIFFFFOOOO._d_e_v_i_d (where _d_e_v_i_d is an
  78.      identifier derived from the name of the device special file
  79.      to which the modem is connected; e.g.  _t_t_y_m_2 for /_d_e_v/_t_t_y_m_2,
  80.      _t_e_r_m__1_0 for /_d_e_v/_t_e_r_m/_1_0.)  To send a command to the
  81.      queueing agent, one writes to FFFFIIIIFFFFOOOO.  This is useful, for
  82.      example, for submitting a job for transmission.  To send a
  83.      command to a specific _f_a_x_g_e_t_t_y process, the FFFFIIIIFFFFOOOO._d_e_v_i_d file
  84.      is used.
  85.  
  86.      Client applications interact with a _H_y_l_a_F_A_X server machine
  87.      using a communications protocol implemented by the _h_f_a_x_d(1M)
  88.      program.  The _h_f_a_x_d program is typically started at system
  89.      startup; it listens for client requests for service and
  90.      creates a process for each client.  _h_f_a_x_d supports the
  91.      submission of outbound jobs, querying the status of the send
  92.      and receive queues, and altering parameters of previously
  93.      submitted jobs.  The _h_f_a_x_d processes communicate with the
  94.      _f_a_x_q process through FIFO special files.  Commands sent to
  95.      _f_a_x_q are sent to FFFFIIIIFFFFOOOO and responses are received on FIFO
  96.      files that each _h_f_a_x_d creates in the cccclllliiiieeeennnntttt subdirectory.
  97.  
  98. SSSSEEEETTTTUUUUPPPP
  99.      Each _H_y_l_a_F_A_X server machine must run the _f_a_x_s_e_t_u_p(1M)
  100.      command prior to starting up _H_y_l_a_F_A_X server processes.
  101.      _f_a_x_s_e_t_u_p verifys that the _H_y_l_a_F_A_X software has been
  102.      installed correctly and that any parameters that were
  103.      specified at the time the software was built are appropriate
  104.      for the system.
  105.  
  106. SSSSEEEENNNNDDDDIIIINNNNGGGG
  107.      Each outgoing facsimile job has a job description file that
  108.      is located in the sssseeeennnnddddqqqq subdirectory.  This file contains
  109.      all the information necessary to manage the transmission;
  110.      c.f.  _s_e_n_d_q(4F).  The actual documents that are to be sent
  111.      are usually located in the ddddooooccccqqqq subdirectory (though it is
  112.      also possible to reference documents from the rrrreeeeccccvvvvqqqq
  113.      directory).  _H_y_l_a_F_A_X accepts POSTSCRIPT, PCL, and TIFF
  114.      documents for transmission (though support for PCL documents
  115.      is not currently implemented).  Documents are automatically
  116.      converted to TIFF/F documents prior to transmission
  117.      according to the capabilities of the remote facsimile
  118.      machine: maximum page width and length, ability to handle
  119.      2D-encoded data, and ability to handle high resolution (7
  120.      line/mm) data.  This remote machine capability information
  121.      is stored in files in the iiiinnnnffffoooo subdirectory.  If a machine
  122.      has not been called before, _H_y_l_a_F_A_X assumes the remote
  123.      machine has the requested capabilities.  If a capabilities
  124.      mismatch is detected while sending a facsimile _H_y_l_a_F_A_X will
  125.      disconnect and reconvert the submitted documents according
  126.  
  127.  
  128.  
  129. Page 2                                          (printed 3/21/00)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. HHHHYYYYLLLLAAAAFFFFAAAAXXXX((((4444FFFF))))     UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJaaaannnnuuuuaaaarrrryyyy 11118888,,,, 1111999999996666))))      HHHHYYYYLLLLAAAAFFFFAAAAXXXX((((4444FFFF))))
  137.  
  138.  
  139.  
  140.      to the newly discovered capabilities.  Users may also
  141.      restrict the session parameters used to format documents on
  142.      a per-job basis.
  143.  
  144.      The actual transmission is handled by a _f_a_x_s_e_n_d(1M) process
  145.      that is initiated by the scheduler.  This program may be
  146.      substituted for by specifying the FFFFaaaaxxxxSSSSeeeennnnddddCCCCmmmmdddd configuration
  147.      parameter in the _f_a_x_q configuration file.
  148.  
  149.      While a job is being processed by a server process, its job
  150.      description file is locked for exclusive use with _f_l_o_c_k(2).
  151.      The _h_f_a_x_d(1M) program uses this information to tell if a job
  152.      is actively being processed.
  153.  
  154.      If the SSSSeeeessssssssiiiioooonnnnTTTTrrrraaaacccciiiinnnngggg parameter in a server's configuration
  155.      file is non-zero, then tracing information for an outgoing
  156.      job will be logged in a file in the lllloooogggg subdirectory.  Each
  157.      destination machine has a separate log file named by its
  158.      canonical phone number.
  159.  
  160.      The remote job submission facility includes host and user
  161.      access control.  The file eeeettttcccc////hhhhoooossssttttssss must be present and list
  162.      those hosts and users that are permitted to queue jobs for
  163.      transmission or do other operations that alter the status of
  164.      a job.  Note that it is necessary to include the ``local
  165.      host'' definition (usually 127.0.0.1) if local submission is
  166.      to be permitted.  For more information consult _h_o_s_t_s(4F).
  167.  
  168.      There are a number of controls on outbound calls that can be
  169.      specified using the eeeettttcccc////ddddeeeessssttttccccoooonnnnttttrrrroooollllssss file (or whatever file
  170.      is specified in a DDDDeeeessssttttCCCCoooonnnnttttrrrroooollllssss configuration parameter in
  171.      the _f_a_x_q configuration file).  This file, described in
  172.      _d_e_s_t_c_t_r_l_s(4F), allows an administrator to restrict calls by
  173.      phone number and to control the time of day that calls may
  174.      be placed.  In addition, operational parameters such as the
  175.      maximum number of pages in a facsimile transmission can be
  176.      constrained on a per-destination basis.
  177.  
  178.      If an error is encountered during transmission and a
  179.      subsequent retransmission would not include the original
  180.      cover page, then _H_y_l_a_F_A_X can be configured to generate a
  181.      _c_o_n_t_i_n_u_a_t_i_o_n _c_o_v_e_r _p_a_g_e that is prepended to the
  182.      retransmitted pages.  Such cover pages are usually generated
  183.      by the bbbbiiiinnnn////mmmmkkkkccccoooovvvveeeerrrr command; though the exact command to use
  184.      can be specified in the configuration file read by _f_a_x_q.
  185.  
  186.      _H_y_l_a_F_A_X can be configured to generate a line of status
  187.      information across the top of each page of an outbound
  188.      facsimile.  This information, termed a ``tagline'',
  189.      typically includes the sender's identity (i.e. phone
  190.      number), the time and date of the transmission, and the page
  191.      number.  The exact format of the tagline is configurable and
  192.  
  193.  
  194.  
  195. Page 3                                          (printed 3/21/00)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. HHHHYYYYLLLLAAAAFFFFAAAAXXXX((((4444FFFF))))     UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJaaaannnnuuuuaaaarrrryyyy 11118888,,,, 1111999999996666))))      HHHHYYYYLLLLAAAAFFFFAAAAXXXX((((4444FFFF))))
  203.  
  204.  
  205.  
  206.      applications can override the default configuration
  207.      parameters on a per-job basis.  Note that in the United
  208.      States the law requires that a tagline that identifies the
  209.      sender's phone number must appear on each transmitted page
  210.      of facsimile.
  211.  
  212.      Facsimile transmitted to receivers that accept variable-
  213.      length pages may have short pages ``_c_h_o_p_p_e_d''.  That is, if
  214.      a page has a significant amount of trailing whitespace and
  215.      the receiver accepts variable-length pages then only the top
  216.      part of the page will be transmitted.  _f_a_x_q can be
  217.      configured so that only the last page of each document is
  218.      potentially chopped, all pages are potentially chopped, or
  219.      chopping is disabled.  The minimum whitespace threshold is
  220.      also configurable.  Applications can override the default
  221.      configuration parameters on a per-job basis.
  222.  
  223. RRRREEEECCCCEEEEIIIIVVVVIIIINNNNGGGG
  224.      _f_a_x_g_e_t_t_y server processes can be configured to answer
  225.      incoming phone calls and automatically receive facsimile.
  226.      Received documents are placed in the rrrreeeeccccvvvvqqqq subdirectory as
  227.      TIFF Class F files.  The _f_a_x_g_e_t_t_y processes can be
  228.      configured to make these files publicly accessible, or they
  229.      can be made private in which case an administrator must
  230.      manage their delivery and/or the assignment of ownership to
  231.      particular users.  When a facsimile is received, the
  232.      _f_a_x_g_e_t_t_y process usually invokes the bbbbiiiinnnn////ffffaaaaxxxxrrrrccccvvvvdddd command;
  233.      though the exact command to invoke can be specified in the
  234.      per-modem configuration file.  The default _n_o_t_i_f_y command is
  235.      a shell script that sends a mail message to a well known
  236.      user, the _F_a_x_M_a_s_t_e_r, but one might also, for example,
  237.      automatically spool the document for printing.
  238.  
  239.      _H_y_l_a_F_A_X supports a simple form of access control for
  240.      receiving facsimile.  Each _f_a_x_g_e_t_t_y process may be
  241.      configured to check the Transmission Subscriber Identifiers
  242.      (TSI) of the remote fax machine against an access control
  243.      list, typically eeeettttcccc////ttttssssiiii.  Only if the TSI is matched by a
  244.      regular expression pattern in the file, is the remote
  245.      machine permitted to transmit a document.  This mechanism
  246.      can be used, for example, to guard against _j_u_n_k _f_a_x.
  247.  
  248.      _H_y_l_a_F_A_X can be configured to do _c_o_p_y _q_u_a_l_i_t_y _c_h_e_c_k_i_n_g on
  249.      received facsimile data.  When this feature is enabled
  250.      _f_a_x_g_e_t_t_y decodes and analyzes the received facsimile data as
  251.      it is received.  If data is received with too many errors,
  252.      according to the setting of the MMMMaaaaxxxxCCCCoooonnnnsssseeeeccccuuuuttttiiiivvvveeeeBBBBaaaaddddLLLLiiiinnnneeeessss and
  253.      PPPPeeeerrrrcccceeeennnnttttGGGGooooooooddddLLLLiiiinnnneeeessss configuration parameters, then the sender
  254.      will be told to retransmit the page.  When copy quality
  255.      checking is enabled it is also possible to force received
  256.      facsimile data to be saved with a different compression
  257.      scheme than was used for transmission.  This function is
  258.  
  259.  
  260.  
  261. Page 4                                          (printed 3/21/00)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. HHHHYYYYLLLLAAAAFFFFAAAAXXXX((((4444FFFF))))     UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJaaaannnnuuuuaaaarrrryyyy 11118888,,,, 1111999999996666))))      HHHHYYYYLLLLAAAAFFFFAAAAXXXX((((4444FFFF))))
  269.  
  270.  
  271.  
  272.      known as _t_r_a_n_s_c_o_d_i_n_g and can significantly reduce the space
  273.      needed to store received facsimile.
  274.  
  275. PPPPOOOOLLLLLLLLIIIINNNNGGGG
  276.      _H_y_l_a_F_A_X supports the polled retrieval of facsimile
  277.      documents.  Documents that are received because of a poll
  278.      request are stored in the rrrreeeeccccvvvvqqqq subdirectory and also
  279.      delivered directly to the requester using the bbbbiiiinnnn////ppppoooollllllllrrrrccccvvvvdddd
  280.      command; though the exact command to invoke can be specified
  281.      with the PPPPoooollllllllRRRRccccvvvvddddCCCCmmmmdddd configuration parameter.  The ppppoooollllllllrrrrccccvvvvdddd
  282.      script typically encodes the binary facsimile data and
  283.      returns it to the user via electronic mail.
  284.  
  285. IIIINNNNBBBBOOOOUUUUNNNNDDDD CCCCAAAALLLLLLLL HHHHAAAANNNNDDDDLLLLIIIINNNNGGGG
  286.      In environments where Caller-ID information is available,
  287.      _H_y_l_a_F_A_X also supports a call screening facility similar to
  288.      the TSI access control facility.  _f_a_x_g_e_t_t_y can be configured
  289.      to check the phone number of each caller against an access
  290.      control list, typically eeeettttcccc////cccciiiidddd.  Only if the number is
  291.      matched by a regular expression pattern in the file is the
  292.      call answered.  All Caller ID information is logged,
  293.      irregardless of whether or not it is used to screen incoming
  294.      calls.
  295.  
  296.      _f_a_x_g_e_t_t_y is also capable of using _d_i_s_t_i_n_c_t_i_v_e _r_i_n_g
  297.      information to identify whether an inbound call is voice,
  298.      data, or fax.  Consult the RRRRiiiinnnnggggDDDDaaaattttaaaa, RRRRiiiinnnnggggFFFFaaaaxxxx, and RRRRiiiinnnnggggVVVVooooiiiicccceeee
  299.      parameters in _c_o_n_f_i_g(4F) for a description of this facility.
  300.  
  301. DDDDAAAATTTTAAAA CCCCAAAALLLLLLLLSSSS
  302.      Most fax modems also support non-facsimile communication.
  303.      _H_y_l_a_F_A_X uses the locking mechanism employed by _u_u_c_p(1C),
  304.      _c_u(1C), _s_l_i_p(1M), and _p_p_p(1M).  Any _f_a_x_g_e_t_t_y processes will
  305.      transparently ``get out of the way'' when an application
  306.      wants to use a modem for an outgoing call.  In addition,
  307.      _H_y_l_a_F_A_X can be configured to deduce whether an incoming call
  308.      is for facsimile or data use.  If a call from a data modem
  309.      is recognized and the GGGGeeeettttttttyyyyAAAArrrrggggssss parameter is specified in
  310.      the configuration file, _f_a_x_g_e_t_t_y will invoke the _g_e_t_t_y(1M)
  311.      program so that caller may login to the system.  Similar
  312.      functionality is also available for invoking a ``voice
  313.      getty'' process, though auto-detection of inbound voice
  314.      calls is less extensive.
  315.  
  316. SSSSTTTTAAAATTTTUUUUSSSS
  317.      _H_y_l_a_F_A_X maintains status information in several forms.
  318.      General status information for each server process is
  319.      maintained in the ssssttttaaaattttuuuussss subdirectory and returned to users
  320.      by the _f_a_x_s_t_a_t(1) program.  The _s_y_s_l_o_g(3) facility is used
  321.      by all server processed for logging status and error
  322.      diagnostics.  The server processes may also be configured to
  323.      log various kinds of debugging and tracing information; c.f.
  324.  
  325.  
  326.  
  327. Page 5                                          (printed 3/21/00)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. HHHHYYYYLLLLAAAAFFFFAAAAXXXX((((4444FFFF))))     UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJaaaannnnuuuuaaaarrrryyyy 11118888,,,, 1111999999996666))))      HHHHYYYYLLLLAAAAFFFFAAAAXXXX((((4444FFFF))))
  335.  
  336.  
  337.  
  338.      the SSSSeeeerrrrvvvveeeerrrrTTTTrrrraaaacccciiiinnnngggg parameter description in _c_o_n_f_i_g(4F).
  339.  
  340.      Any problems encountered when transmitting a facsimile are
  341.      described in messages returned to the user by electronic
  342.      mail.  A user may also request notification by mail when a
  343.      job is requeued; for example, because a call failed.
  344.      Notification by electronic mail is implemented by the
  345.      bbbbiiiinnnn////nnnnoooottttiiiiffffyyyy command script; though the name of the script may
  346.      be overridden with the NNNNoooottttiiiiffffyyyyCCCCmmmmdddd configuration parameter.
  347.  
  348.      The _f_a_x_s_t_a_t utility provides (remote) status of jobs queued
  349.      for transmission, jobs received, and the general status of
  350.      server processes.
  351.  
  352.      The file eeeettttcccc////xxxxffffeeeerrrrlllloooogggg contains status information about all
  353.      facsimile sent and received on a machine.  This file is in a
  354.      simple ASCII format that is easy to manipulate with programs
  355.      such as _a_w_k(1), to generate accounting information.  See
  356.      _x_f_e_r_l_o_g(4F) for information about the format.  See
  357.      _x_f_e_r_s_t_a_t_s(1M) and _r_e_c_v_s_t_a_t_s(1M) for example scripts that
  358.      print summarized accounting information.
  359.  
  360.      Finally, the _h_f_a_x_d process supports a event monitoring
  361.      facility that can be access via the _f_a_x_w_a_t_c_h(1M) program.
  362.      This facility permits clients to register interest in
  363.      various events and receive ``realtime notification'' when
  364.      such events occur on the server.  Using this facility it
  365.      is/should-be simple to construct applications that do things
  366.      like monitor modem status and use.
  367.  
  368. MMMMOOOODDDDEEEEMMMM SSSSTTTTAAAATTTTEEEE CCCCHHHHAAAANNNNGGGGEEEESSSS
  369.      In normal operation each modem is managed by a _H_y_l_a_F_A_X
  370.      server process such as _f_a_x_g_e_t_t_y.  These processes
  371.      communicate with the central scheduler process to notify it
  372.      when a modem is ready for use, busy for outbound use, or
  373.      possibly in an unusable state (either purposely marked
  374.      unavailable or potentially found to be wedged).  Modem usage
  375.      can be explicitly controlled with the _f_a_x_s_t_a_t_e(1M) program.
  376.      The _f_a_x_c_o_n_f_i_g(1M) program can also be used to dynamically
  377.      make changes to configuration parameters that may cause a
  378.      modem to be treated differently (e.g.  setting
  379.      RRRRiiiinnnnggggssssBBBBeeeeffffoooorrrreeeeAAAAnnnnsssswwwweeeerrrr to zero will cause _f_a_x_g_e_t_t_y to not answer
  380.      incoming calls).
  381.  
  382.      When _H_y_l_a_F_A_X is used in a send-only configuration there are
  383.      no _f_a_x_g_e_t_t_y processes and communication must be done
  384.      directly with the _f_a_x_q process.  The _f_a_x_s_t_a_t_e program can
  385.      still be used to manipulate modem use for outbound jobs but
  386.      the _f_a_x_c_o_n_f_i_g program is not frequently needed.
  387.  
  388. JJJJOOOOBBBB SSSSCCCCHHHHEEEEDDDDUUUULLLLIIIINNNNGGGG
  389.      Outbound jobs are scheduled by a single process.  Jobs have
  390.  
  391.  
  392.  
  393. Page 6                                          (printed 3/21/00)
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. HHHHYYYYLLLLAAAAFFFFAAAAXXXX((((4444FFFF))))     UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJaaaannnnuuuuaaaarrrryyyy 11118888,,,, 1111999999996666))))      HHHHYYYYLLLLAAAAFFFFAAAAXXXX((((4444FFFF))))
  401.  
  402.  
  403.  
  404.      a ``scheduling priority'' that is assigned at the time the
  405.      job is submitted.  This priority can be changed at any time
  406.      the job is not actively being processed using the
  407.      _f_a_x_a_l_t_e_r(1M) program.  A job's scheduling priority may also
  408.      be raised by _f_a_x_q in response to certain scheduling events
  409.      (e.g. after a failed attempt to send the priority may be
  410.      raised).
  411.  
  412.      Modems are assigned to outbound jobs if they are deemed
  413.      ready for use.  Modem readiness is usually communicated to
  414.      _f_a_x_q by per-modem _f_a_x_g_e_t_t_y processes.  In a send-only
  415.      environment however this is not possible; instead modems
  416.      configured for use with _f_a_x_m_o_d_e_m are considered always ready
  417.      for use unless they are presently assigned to an outbound
  418.      job or their state is explicitly changed through the
  419.      _f_a_x_s_t_a_t_e(1M) program (_f_a_x_s_t_a_t_e can also be used in a send-
  420.      recv environment).
  421.  
  422.      Each modem has a ``modem priority'' in the range [0..255].
  423.      Modems with a lower priority number are assigned to outbound
  424.      jobs first.  Modem priority is statically configured through
  425.      configuration files, the _f_a_x_m_o_d_e_m program, and the _f_a_x_c_o_n_f_i_g
  426.      program.
  427.  
  428. JJJJOOOOBBBB MMMMAAAANNNNAAAAGGGGEEEEMMMMEEEENNNNTTTT
  429.      Outbound jobs are considered to be in one of several states
  430.      that reflect their treatment by the central scheduling
  431.      process.  Jobs are initially created in a _s_u_s_p_e_n_d_e_d state,
  432.      and may be returned to this state at any time that they are
  433.      not actively being processed (e.g. a _f_a_x_s_e_n_d program is
  434.      running to process the job).  Jobs that are suspended are
  435.      not processed by the scheduler; and their internal state may
  436.      be safely altered by the owner or a system administrator.
  437.      Jobs that are ready for processing by the scheduler are
  438.      ``submitted'' and their state is changed to be either
  439.      _p_e_n_d_i_n_g (delayed waiting for a future time to send),
  440.      _s_l_e_e_p_i_n_g (delayed waiting for a scheduled timeout), _b_l_o_c_k_e_d
  441.      (delayed by concurrent activity to the same destination), or
  442.      _r_e_a_d_y (ready for transmission, waiting only for available
  443.      resources).  When a job is actively processed by the _f_a_x_s_e_n_d
  444.      program its state is marked _a_c_t_i_v_e.  Jobs that have
  445.      completed, either successfully or unsuccessfully are placed
  446.      in a _d_o_n_e state and their job description files are moved to
  447.      the ddddoooonnnneeeeqqqq subdirectory.  Clients may still access the state
  448.      of jobs that are done; until a ``cleaner process'' either
  449.      purges them from the system or archives their state.  This
  450.      delayed removal of a completed job's state permits clients
  451.      to resubmit failed jobs using previously transmitted
  452.      documents and other job state information.  The exact
  453.      mechanics of how and when done jobs are processed is
  454.      system-dependent; for example, how long a job is left in the
  455.      done queue before being purged, and whether job archival
  456.  
  457.  
  458.  
  459. Page 7                                          (printed 3/21/00)
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. HHHHYYYYLLLLAAAAFFFFAAAAXXXX((((4444FFFF))))     UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJaaaannnnuuuuaaaarrrryyyy 11118888,,,, 1111999999996666))))      HHHHYYYYLLLLAAAAFFFFAAAAXXXX((((4444FFFF))))
  467.  
  468.  
  469.  
  470.      support is present.
  471.  
  472. CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRAAAATTTTIIIIOOOONNNN
  473.      _H_y_l_a_F_A_X server programs read configuration information from
  474.      a configuration file.  Multiple files are used, one for the
  475.      _f_a_x_q program and one for each modem.  Long-running server
  476.      programs all automatically re-read their configuration file
  477.      if it is modified.  Typically this re-reading is done
  478.      frequently enough that administrators do not need to be
  479.      aware of exactly when it takes place.  However in some
  480.      esoteric cases the file may not be read when expected (the
  481.      one important case is that the _f_a_x_g_e_t_t_y process reads its
  482.      configuration file only when answering a call or when
  483.      resetting a modem; this means that it will not recognize
  484.      changes when the modem is idle).
  485.  
  486.      In addition to the static configuration files, _H_y_l_a_F_A_X
  487.      server programs accept commands on their FIFO special files
  488.      to alter configuration parameters in the running executable
  489.      (the _f_a_x_c_o_n_f_i_g(1M) program can be used to dynamically change
  490.      configuration parameters).  Values set in this way however
  491.      are lost when the process exits or if the configuration file
  492.      is re-read.
  493.  
  494. NNNNOOOOTTTTEEEESSSS
  495.      Automatic routing of incoming facsimile is desirable.
  496.  
  497. FFFFIIIILLLLEEEESSSS
  498.      FIFO                  fifo for job submission
  499.      FIFO.<devid>          fifo for communicating with a faxgetty process
  500.      /usr/freeware/sbin/faxinfocommand that prints information about received facsimile
  501.      /usr/freeware/sbin/faxquitcommand to force server to quit
  502.      bin/faxrcvd           faxd command for handling newly received facsimile
  503.      bin/mkcover           faxd command for generating continuation cover pages
  504.      bin/notify            faxd command for doing user notification
  505.      bin/pollrcvd          faxd command for delivering facsimile received by poll
  506.      bin/ps2fax            faxd command for converting POSTSCRIPT to TIFF
  507.      docq/doc*             documents available for transmission
  508.      etc/setup.cache       server setup file created by _f_a_x_s_e_t_u_p
  509.      etc/cid               caller id access control list
  510.      etc/config.<devid>    configuration data for <devid>
  511.      etc/hosts             hosts that may submit jobs for transmission
  512.      etc/tsi               fax machine receive access control list
  513.      etc/xferlog           log of facsimile sent and received
  514.      info/*                data base of remote fax machine capabilities
  515.      client/*              FIFO special files created by client processes
  516.      config/*              prototype configuration files used by _f_a_x_a_d_d_m_o_d_e_m
  517.      log/*                 session logging records
  518.      recvq/fax*            received facsimile
  519.      sendq/q*              descriptions of jobs queued for transmission
  520.      doneq/q*              descriptions of jobs that are done
  521.      status/*              server status information
  522.  
  523.  
  524.  
  525. Page 8                                          (printed 3/21/00)
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. HHHHYYYYLLLLAAAAFFFFAAAAXXXX((((4444FFFF))))     UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJaaaannnnuuuuaaaarrrryyyy 11118888,,,, 1111999999996666))))      HHHHYYYYLLLLAAAAFFFFAAAAXXXX((((4444FFFF))))
  533.  
  534.  
  535.  
  536.      tmp/*                 temporary files created when submitting a job
  537.      archive/*             database of archived jobs
  538.  
  539. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  540.      _f_a_x_s_e_t_u_p(1M), _f_a_x_q(1M), _f_a_x_g_e_t_t_y(1M), _h_f_a_x_d(1M),
  541.      _f_a_x_s_e_n_d(1M), _f_a_x_r_c_v_d(1M), _f_a_x_c_o_n_f_i_g(1M), _f_a_x_m_o_d_e_m(1M),
  542.      _f_a_x_s_t_a_t_e(1M), _n_o_t_i_f_y(1M), _p_o_l_l_r_c_v_d(1M), _r_e_c_v_s_t_a_t_s(1M),
  543.      _x_f_e_r_s_t_a_t_s(1M), _a_r_c_h_i_v_e(4F), _c_o_n_f_i_g(4F), _d_i_a_l_r_u_l_e_s(4F),
  544.      _d_o_n_e_q(4F), _h_o_s_t_s(4F), _i_n_f_o(4F), _l_o_g(4F), _t_s_i(4F), _r_e_c_v_q(4F),
  545.      _s_e_n_d_q(4F), _s_t_a_t_u_s(4F), _x_f_e_r_l_o_g(4F),
  546.  
  547.      Extensive documentation is available in online at
  548.      http://www.vix.com/hylafax/.  Many of these materials are
  549.      also included in the software distribution.
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591. Page 9                                          (printed 3/21/00)
  592.  
  593.  
  594.  
  595.